package xyz.mumuwei.youthcourseserver.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.apache.ibatis.annotations.Mapper;
import xyz.mumuwei.youthcourseserver.common.dto.PageDto;
import xyz.mumuwei.youthcourseserver.common.lang.Result;
import xyz.mumuwei.youthcourseserver.pojo.Order;

import java.util.List;

/**
 * @author mumuwei
 * @since 2022-02-19
 */
@Mapper
public interface OrderMapper extends BaseMapper<Order> {

    /**
     * 分页查询订单信息
     * @param page 分页数据
     * @param key 模糊查询
     * @return 订单列表
     */
    Page<Order> getOrderByPage(Page<Order> page, String key);

    /**
     * 分页根据学生id查询订单信息
     * @param page 分页数据
     * @param id 学生Id
     * @return 订单列表
     */
    Page<Order> getOrderPageByStudent(Page<Order> page, Integer id);

    /**
     * 查询所有订单列表
     * @return 返回携带 课程名 学员名 手机号的订单列表
     */
    List<Order> getOrderList();

    /**
     * 根据订单编号获取订单信息
     * @param code 订单编号
     * @return 订单信息
     */
    Order getOrderByCode(String code);

    /**
     * 检查该学生用户是否已经购买该课程
     * @param uid 用户id
     * @param courseId 课程id
     * @return 记录条数
     */
    Integer checkStudentBuyCourseById(Integer uid, Integer courseId);
}
